﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

namespace CppIDE.Core
{

    /// <summary>
    /// Futtatható fájl. Annyival több a BinaryFile-nál, hogy lehet futtatni.
    /// </summary>
    public class ExecutableFile : BinaryFile
    {

        /// <summary>
        /// Konstruktor, létrehoz egy új példányt, elérési út nélkül.
        /// </summary>
        public ExecutableFile()
            : base()
        {
        }

        /// <summary>
        /// Konstruktor, létrehoz egy új példányt, elérési úttal.
        /// </summary>
        /// <param name="fullPath">a teljes elérési út</param>
        public ExecutableFile(String fullPath)
            : base(fullPath)
        {
        }

        /// <summary>
        /// Futtatja a fájlt.
        /// </summary>
        /// <returns>igaz, ha sikerült futtatni</returns>
        public bool execute()
        {
            if (!Exist)
            {
                return false;
            }
            try
            {
                ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe");
                startInfo.Arguments = "/c ";
                startInfo.Arguments += " \"" + FullPath + "\"";
                startInfo.Arguments += " & pause";
                startInfo.CreateNoWindow = false;
                Process process = Process.Start(startInfo);
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }

    }

}
